package com.ws.oop;
/*
一、设计类，其实就是设计类的成员

属性 = 成员变量 = field = 域、字段
方法 = 成员方法 = 函数 = method

创建类的对象 = 类的实例化 = 实例化类

二、类和对象的使用（面向对象思想落地的实现）
1.创建类、设计类的成员
2.创建类的对象
3.通过 对象.属性 或 对象.方法 调用对象的结构

三、如果创建了一个类的多个对象，则每个对象都独立的拥有一套类的属性。（非 static 的）
    意味着：如果我们修改一个对象的属性a ，不影响另一个对象的属性 a 的值

四、对象的内存解析
 */
//测试类
public class PersonTest {
    public static void main(String[] args) {
        //2.创建 Person 类的对象
        Person person = new Person();

        //调用对象的结构：属性、方法
        //调用属性：对象.方法
        person.name = "Tom";
        person.isMale = true;
        System.out.println(person.name);

        //调用方法：对象.方法
        person.eat();
        person.talk("汉语");

        //**********************************
        Person person1 = new Person();
        System.out.println(person1.name);

        //赋值：将 person 变量保存的对象地址值赋给 person2，导致 person 和 person2 指向了堆空间中的同一个对象实体
        Person person2 = person;
        System.out.println(person2.name);
        person2.age = 10;
        System.out.println(person.age);


    }
}

//1.创建类、设计类的成员
class Person {

    //属性
    String name;
    int age;
    boolean isMale;

    //方法
    public void eat() {
        System.out.println("人需要吃饭");
    }

    public void talk(String language) {
        System.out.println("人可以说话，使用的是：" + language);
    }

}
